#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int test_value = 13;

int main()
{
	// 实验进程中的数据和进程的ID。
	// 存在写时拷贝。
	// 并且写时拷贝中地址都一样。
	// 虽然他们的值很明显存在拷贝。
	int id = fork();

	if(id < 0)
	{
		perror("fork fail");
		return 1;
	}
	else if(id == 0)
	{
		int count = 5;
		while(count--)
		{
			test_value += 2;
			printf("这是一个子进程，进程ID:%d,父进程ID:%d,test_value:%d,test_value_ptr:%p\n",getpid(),getppid(),test_value,&test_value);
			sleep(1);
		}
	}
	else if(id > 0)
	{
		while(1)
		{
			printf("这是一个父进程,父进程ID:%d,test_value:%d\,test_value_ptr:%p\n",getpid(),test_value,&test_value);
			sleep(1);
		}
	}

	return   0;
}
